home *** CD-ROM | disk | FTP | other *** search
/ Aztech's Super Games / Aztech's Super Games (Aztech New Media Corp)(1994).ISO / for_pc / pixsetup.ms_ < prev    next >
Text File  |  1994-04-18  |  27KB  |  920 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit PixFolio
  3. '**************************************************************************
  4. ''  Revised Pixfolio Setup Script
  5. ''   Feb 94: David H. Goeb
  6. ''   Apr 94: David H. Goeb
  7.  
  8. ''   Additions
  9. ''     Changed to have PCD files as part of application files
  10. ''     Added a WIN.INI check function to see if catalog was 
  11. ''      already installed, and also check if new version.
  12. ''      All Aztech Text files are also added to the program group
  13. ''      Further Enhancements are custom Install call and Multi
  14. ''      Catalog support
  15. ''     Additional bug fixes and addition of gems catalog
  16.  
  17.  
  18. ''$DEFINE DEBUG  ''Define for script development/debugging
  19.  
  20. '$INCLUDE 'setupapi.inc'
  21. '$INCLUDE 'msdetect.inc'
  22. '$INCLUDE 'mscuistf.inc'
  23.  
  24. ''Dialog ID's
  25. CONST WELCOME       = 100
  26. CONST ASKQUIT       = 200
  27. CONST DESTPATH      = 300
  28. CONST EXITFAILURE   = 400
  29. CONST EXITQUIT      = 600
  30. CONST EXITSUCCESS   = 700
  31. CONST EXITREGISTERED= 750
  32. CONST OPTIONS       = 800
  33. CONST APPHELP       = 900
  34. CONST CUSTHELP      = 910
  35. CONST REGHELP       = 920
  36. CONST CUSTINST      = 6200
  37. CONST TOOBIG        = 6300
  38. CONST NOAVI         = 6350
  39. CONST NOAPP         = 6360
  40. CONST BADPATH       = 6400
  41. CONST CDGETNAMEORG  = 7500
  42. CONST MODELESS      = 5000
  43. CONST QUITWIN       = 6500
  44.  
  45. ''Bitmap ID
  46. CONST LOGO = 1
  47.  
  48. ''File Types
  49. CONST APPFILES     = 1
  50. CONST OPTFILES1    = 2
  51. CONST OPTFILES2    = 3
  52. CONST OPTFILES3    = 4
  53. CONST SYMFILES     = 5
  54. CONST CATFILES     = 6
  55. ''================================
  56. GLOBAL CATCOST%
  57.  
  58. GLOBAL CC$
  59.  
  60. GLOBAL DEST$        ''Default destination directory.
  61. GLOBAL WINDRIVE$    ''Windows drive letter.
  62. GLOBAL OPTCUR$      ''Option selection from option dialog.
  63. GLOBAL CUIDLL$      ''Custom user interface DLL
  64. GLOBAL szTempDir$   ''Working directory
  65. GLOBAL SysDir$      ''Windows System Directory
  66. GLOBAL ini$         ''INI file path
  67. GLOBAL astr$        ''Usefull little string
  68.  
  69. GLOBAL NOPT$     ''Option selection from OptFiles1 option dialog.
  70.  
  71. GLOBAL OPT1OPT$     ''?? Option selection from OptFiles1 option dialog.
  72. GLOBAL OPT2OPT$     ''?? Option selection from OptFiles2 option dialog.
  73. GLOBAL OPT3OPT$
  74. GLOBAL SYMOPT$      ''Option selection for symbol files.
  75.  
  76. ''CustInst list symbol names
  77. GLOBAL APPNEEDS$    ''Option list costs per drive
  78. GLOBAL OPT1NEEDS$
  79. GLOBAL OPT2NEEDS$
  80. GLOBAL OPT3NEEDS$   ''Multimedia files
  81. GLOBAL SYMNEEDS$
  82. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  83. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  84.  
  85. ''Dialog list symbol names
  86. GLOBAL CHECKSTATES$
  87. GLOBAL STATUSTEXT$
  88. GLOBAL DRIVETEXT$
  89.  
  90.  
  91. DECLARE SUB AddOptFilesToCopyList (ftype%)
  92. DECLARE SUB RecalcOptFiles (ftype%)
  93. DECLARE SUB RecalcPath
  94. DECLARE SUB SetDriveStatus
  95. DECLARE SUB Install
  96. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  97.  
  98.  
  99. INIT:
  100.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  101.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  102.  
  103.     SetBitmap CUIDLL$, LOGO
  104.     SetTitle "PixFolio Setup"
  105.     szTempDir$ = GetSymbolValue("STF_CWDDIR")
  106.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  107.     IF szInf$ = "" THEN
  108.        szInf$ = GetSymbolValue("STF_CWDDIR") + "PIXSETUP.INF"
  109.     END IF
  110.     ReadInfFile szInf$
  111.     '' Force Catalog to be include unless selected off
  112.  
  113.     NOPT$ = "1"
  114.  
  115.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  116. ''    DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  117.     DEST$ = ".............................................................................................................................."
  118.     GetPixDir DEST$
  119.     if DEST$ = "" THEN
  120.         DEST$ = WINDRIVE$ + ":\PIXFOLIO"
  121.     END IF
  122.     ini$ = MakePath(GetWindowsDir, "WIN.INI")
  123.  
  124.     ''CustInst list symbols
  125.     CHECKSTATES$ = "CheckItemsState"
  126.     STATUSTEXT$  = "StatusItemsText"
  127.     DRIVETEXT$   = "DriveStatusText"
  128. '   FOR i% = 1 TO 3 STEP 1
  129.         AddListItem CHECKSTATES$, "ON"  '' Main program files
  130.         AddListItem CHECKSTATES$, "ON"  '' PCD files
  131.         AddListItem CHECKSTATES$, "OFF" '' VFW
  132.         AddListItem CHECKSTATES$, "ON" '' Multimedia
  133.         AddListItem CHECKSTATES$, "OFF" '' Symbols
  134. '    NEXT i%
  135.     FOR i% = 1 TO 5 STEP 1
  136.         AddListItem STATUSTEXT$, ""
  137.     NEXT i%
  138.     FOR i% = 1 TO 7 STEP 1
  139.         AddListItem DRIVETEXT$, ""
  140.     NEXT i%
  141.     ReplaceListItem DRIVETEXT$, 7, DEST$
  142.  
  143.     ''Disk cost list symbols
  144.     APPNEEDS$   = "AppNeeds"
  145.     OPT1NEEDS$  = "Opt1Needs"
  146.     OPT2NEEDS$  = "Opt2Needs"
  147.     OPT3NEEDS$  = "Opt3Needs"
  148.     SYMNEEDS$   = "SymNeeds"
  149.     EXTRACOSTS$ = "ExtraCosts"
  150.     BIGLIST$    = "BigList"
  151.     FOR i% = 1 TO 5 STEP 1
  152.         AddListItem BIGLIST$, ""
  153.     NEXT i%
  154.     FOR i% = 1 TO 26 STEP 1
  155.         AddListItem EXTRACOSTS$, "0"
  156.     NEXT i%
  157.  
  158.     ''File Option Variables
  159.     OPT1OPT$ = "1"
  160.     OPT2OPT$ = "1"
  161.     OPT3OPT$ = "1"
  162.     SYMOPT$  = "1"
  163.  
  164.     SysDir$ = GetWindowsSysDir()
  165.     RecalcPath
  166. ''    i% = DoMsgBox("RecalcPath OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  167.     SetDriveStatus
  168. ''    i% = DoMsgBox("SetDriveStatus OK", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  169.  
  170.  
  171.      OPTCUR$ = "1"
  172. '    DEST$ = "C:\PIXFOLIO"
  173.  
  174. '$IFDEF DEBUG
  175.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  176.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  177.     IF IsDriveValid(WinDrive$) = 0 THEN
  178.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  179.     GOTO QUIT
  180.     END IF
  181. '$ENDIF ''DEBUG
  182.  
  183.  
  184. WELCOME:
  185.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  186.     IF sz$ = "CONTINUE" THEN
  187.     UIPop 1
  188.     ELSE
  189.     GOSUB ASKQUIT
  190.     GOTO WELCOME
  191.     END IF
  192.  
  193.  
  194. OPTION:
  195.     SetSymbolValue "RadioDefault", OPTCUR$
  196. OPTL1:
  197.  
  198.     NOPT$ = "0"
  199.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  200.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  201.  
  202. '$IFDEF DEBUG
  203.      i% = DoMsgBox("Result ('"+OPTCUR$+"') Was Returned.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  204. '$ENDIF ''DEBUG
  205.  
  206.     IF OPTCUR$ = "1" THEN
  207.       NOPT$ = "0"
  208.     ELSE
  209.       NOPT$ = "1"
  210.     END IF
  211.  
  212.     IF sz$ = "CONTINUE" THEN
  213.     UIPop(1)
  214.     ELSEIF sz$ = "REACTIVATE" THEN
  215.     GOTO OPTL1
  216.     ELSE
  217.     GOSUB ASKQUIT
  218.     GOTO OPTION
  219.     END IF
  220.  
  221.  
  222. CUSTINST:
  223.     SetDriveStatus
  224.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", CUSTHELP, HELPPROC$)
  225.  
  226.     IF sz$ = "CONTINUE" THEN
  227.         ''Install only if it will fit.
  228.         FOR i% = 1 TO 5 STEP 1
  229.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  230.                 GOSUB TOOBIG
  231.                 GOTO CUSTINST
  232.             END IF
  233.         NEXT i%
  234.         UIPop 1
  235.         GOTO INSTALLIT
  236.     ELSEIF sz$ = "PATH" THEN
  237.         GOTO GETPATH
  238.     ELSEIF sz$ = "CHK1" THEN
  239.         IF DoesFileExist(MakePath(DEST$, "PIXFOLIO.EXE"), femReadWrite) = 0 AND GetListItem(CHECKSTATES$, APPFILES) = "OFF" THEN
  240.             GOSUB NOAPP
  241.             GOTO CUSTINST
  242.         END IF
  243.         RecalcOptFiles APPFILES
  244.         RecalcOptFiles SYMFILES
  245.         SetDriveStatus
  246.         GOTO CUSTINST
  247.     ELSEIF sz$ = "CHK2" THEN
  248.         RecalcOptFiles OPTFILES1
  249.         RecalcOptFiles SYMFILES
  250.         SetDriveStatus
  251.         GOTO CUSTINST
  252.     ELSEIF sz$ = "CHK3" THEN
  253.         IF GetListItem(CHECKSTATES$, OPTFILES2) = "ON" THEN
  254.             IF CheckForAVI = 0 THEN
  255.                 GOSUB NOAVI
  256.                 ReplaceListItem CHECKSTATES$, OPTFILES2, "OFF"
  257.             END IF
  258.         END IF
  259.         RecalcOptFiles OPTFILES2
  260.         RecalcOptFiles SYMFILES
  261.         SetDriveStatus
  262.         GOTO CUSTINST
  263.     ELSEIF sz$ = "CHK4" THEN
  264.         RecalcOptFiles OPTFILES3
  265.         RecalcOptFiles SYMFILES
  266.         SetDriveStatus
  267.         GOTO CUSTINST
  268.     ELSEIF sz$ = "CHK5" THEN
  269.         RecalcOptFiles SYMFILES
  270.         SetDriveStatus
  271.         GOTO CUSTINST
  272.  
  273.     ELSEIF sz$ = "BTN2" THEN
  274.         GOTO OPTFILES1
  275.     ELSEIF sz$ = "BTN3" THEN
  276.         GOTO OPTFILES2
  277.     ELSEIF sz$ = "BTN4" THEN
  278.         GOTO OPTFILES3
  279.     ELSEIF sz$ = "BTN5" THEN
  280.         GOTO SYMFILES
  281.     ELSEIF sz$ = "REACTIVATE" THEN
  282.         RecalcPath
  283.         SetDriveStatus
  284.         GOTO CUSTINST
  285.     ELSE
  286.         GOTO OPTION
  287.         '' Allow to reverse back to change CD option
  288.         ''GOSUB ASKQUIT
  289.         ''GOTO CUSTINST
  290.     END IF
  291.  
  292.  
  293. GETPATH:
  294.     SetSymbolValue "EditTextIn", DEST$
  295.     SetSymbolValue "EditFocus", "END"
  296. GETPATHL1:
  297.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  298.  
  299.     IF sz$ = "CONTINUE" THEN
  300.         olddest$ = DEST$
  301.         DEST$ = GetSymbolValue("EditTextOut")
  302.  
  303.         ''Validate new path.
  304.         IF IsDirWritable(DEST$) = 0 THEN
  305.             GOSUB BADPATH
  306.             GOTO GETPA